// 注意：以后在开发小程序的时候，如果想要给原型添加属性，一定要考虑这个属性是否能被枚举

Object.prototype.pick = function (keys) {
  // this => obj
  const newObj = {}
  for (const key of keys) {
    newObj[key] = this[key]
  }
  return newObj
}

// 设置属性描述符，为不可枚举（不可被遍历）
// Object.defineProperty(Object.prototype, 'pick', { enumerable: false })

Object.prototype.omit = function (keys) {
  const newObj = { ...this }
  for (const key of keys) {
    delete newObj[key]
  }
  return newObj
}

// 设置属性描述符，为不可枚举（不可被遍历）
// Object.defineProperty(Object.prototype, 'omit', { enumerable: false })

Object.defineProperties(Object.prototype, {
  pick: { enumerable: false },
  omit: { enumerable: false },
  // xxx: {}
})
